CloudFormationスタック作成時のアベイラビリティーゾーンのエラーを避けられそうなAZID指定
ども、ゲストのNTT東日本 大瀧です。
CloudFormationでVPCを作成するときにありがちなエラーとして、利用不可なアベイラビリティーゾーン(以下AZ)をテンプレートから指定するケースがあります。
AZ指定を抽象化するための組み込み関数 Fn::GetAZs
が利用できますが、これもデフォルトVPCへの依存性があり、たびたびトラブルになります。
一方で、アベイラビリティゾーンを一意に特定するためのAZIDがあり、これをCloudFormationのVPCサブネット作成時に指定できることに気づいたので、ブログでご紹介します。
CloudFormtaionテンプレートでAZIDを指定する
書き方は至ってシンプルです。VPCサブネットリソースのプロパティに AvailabilityZoneId
を指定します。
AWSTemplateFormatVersion: "2010-09-09" Description: A sample template Resources: VPC: Type: "AWS::EC2::VPC" Properties: CidrBlock: "172.31.0.0/20" Subnet1: Type: "AWS::EC2::Subnet" Properties: CidrBlock: "172.31.0.0/24" AvailabilityZoneId: "apne1-az1" VpcId: !Ref VPC Subnet2: Type: "AWS::EC2::Subnet" Properties: CidrBlock: "172.31.1.0/24" AvailabilityZoneId: "apne1-az2" VpcId: !Ref VPC
まとめ
CloudFormationテンプレート内でAZIDを指定する AvailabilityZoneId
プロパティをご紹介しました。
多くのAWSアカウントでは apne1-az1
と apne1-az2
が利用できると思いますので、3AZを求められるケースでなければこの2AZ指定で概ね事足りるかなぁ、と淡い期待をもってしばらく運用してみます。